class Cart < ActiveRecord::Base
  has_many :cart_items
  has_many :productos, :through => :cart_items

  def add(producto_id)
    items = cart_items.find_all_by_producto_id producto_id
    producto =  Producto.find producto_id
    if items.size < 1
      ci = cart_items.create :producto_id => producto_id, :cantidad => 1, :precio => producto.precio
    else
      ci = items.first
      ci.update_attribute :cantidad, ci.cantidad + 1
    end
    ci
  end

  def remove(producto_id)
    ci = cart_items.find_by_producto_id producto_id
    if ci.cantidad > 1
      ci.update_attribute :cantidad, ci.cantidad - 1
    else
      CartItem.destroy ci.id
    end
    ci
  end


  def total
    sum = 0
    cart_items.each do |item| sum += item.precio * item.cantidad end
    sum
  end
end
